385 research outputs found
Regular Expression Matching and Operational Semantics
Many programming languages and tools, ranging from grep to the Java String
library, contain regular expression matchers. Rather than first translating a
regular expression into a deterministic finite automaton, such implementations
typically match the regular expression on the fly. Thus they can be seen as
virtual machines interpreting the regular expression much as if it were a
program with some non-deterministic constructs such as the Kleene star. We
formalize this implementation technique for regular expression matching using
operational semantics. Specifically, we derive a series of abstract machines,
moving from the abstract definition of matching to increasingly realistic
machines. First a continuation is added to the operational semantics to
describe what remains to be matched after the current expression. Next, we
represent the expression as a data structure using pointers, which enables
redundant searches to be eliminated via testing for pointer equality. From
there, we arrive both at Thompson's lockstep construction and a machine that
performs some operations in parallel, suitable for implementation on a large
number of cores, such as a GPU. We formalize the parallel machine using process
algebra and report some preliminary experiments with an implementation on a
graphics processor using CUDA.Comment: In Proceedings SOS 2011, arXiv:1108.279
A Bigraph Relational Model
In this paper, we present a model based on relations for bigraphical reactive
systems [Milner09]. Its defining characteristics are that validity and reaction
relations are captured as traces in a multi-set rewriting system. The
relational model is derived from Milner's graphical definition and directly
amenable to implementation.Comment: In Proceedings LFMTP 2011, arXiv:1110.668
Pervasive Process Calculus
AbstractProcess calculi with various signatures and reaction rules may provide a theoretical basis for pervasive computing
Fully abstract models of typed λ-calculi
AbstractA semantic interpretation A for a programming language L is fully abstract if, whenever A〚C[M]〛⊑A〚C[N]〛 for two program phrases M,N and for all program contexts C[ ], it follows that A〚M〛⊑A〚N〛. A model M for the language is fully abstract if the natural interpretation A of L in M is fully abstract.We show that under certain conditions there exists, for an extended typed λ-calculus, a unique fully abstract model
- …